// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Library General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA


#include "partida.h"

MenuLayout* Partida::CrearMenuLanzamientoIncorrecto()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	std::string ruta = RUTA_FUENTES;
	
	MenuLayout* ml = new MenuLayout("lanzamiento_incorrecto", 1, 1);

	Elemento* elem = new Mensaje("dummy", fuente_hud);
	
	elem->SetText("Lanzamiento incorrecto");
	elem->SetFGColor(negro);
	elem->SetSize(30);
	elem->SetImage("advertencia.png", 100, 100, IMG_ALIGN_LEFT);

	Boton* bot = new Boton("boton_volver_anterior_estado", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGTransparency(1);
	bot->SetBGImage("borde_superior_ventana.png", -1, -1, IMG_ALIGN_ABOVE_RIGHT);
	bot->Append(elem);

	elem = new Mensaje("dummy", fuente_hud);
	std::string mensaje = "Para lanzar correctamente: \n";
	mensaje += "Mantén pulsado B mientras mueves el brazo\n";
	mensaje += "y suelta el botón justo antes de terminar el recorrido\n";
	elem->SetText(mensaje);
	bot->Append(elem);

	ml->Append(bot, 0, 0);

	ml->Pack(render->X(), render->Y());
	ml->EstablecerEnlaces();
	ml->SeleccionarDefecto();


	
	return ml;
}


MenuLayout* Partida::CrearMenuEsperaConexion()
{	
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	std::string ruta = RUTA_FUENTES;
	
	MenuLayout* ml = new MenuLayout("espera_conex", 1, 1);

	Elemento* elem = new Mensaje("dummy", font);
	
	elem->SetText("Conectando");
	elem->SetFGColor(negro);
	elem->SetSize(30);
	elem->SetImage("advertencia.png", 100, 100, IMG_ALIGN_LEFT);

	Boton* bot = new Boton("boton_volver_anterior_estado", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGTransparency(1);
	bot->SetBGImage("borde_superior_ventana.png", -1, -1, IMG_ALIGN_ABOVE_RIGHT);
	bot->Append(elem);

	elem = new Mensaje("dummy", font);
	std::string mensaje = "Se están buscando wiimotes. \n";
	mensaje += "Por favor, mantén pulsado '1' y '2' simultáneamente\n";
	mensaje += "hasta que la luz del mando quede encendida y fija\n";
	mensaje += "Luego pulsa A para volver al juego\n \n";
	mensaje += "ESCAPE saldrá de la aplicación\n";
	mensaje += "(asegúrate de que tu mando tiene suficiente batería)";
	elem->SetText(mensaje);
	bot->Append(elem);

	ml->Append(bot, 0, 0);

	ml->Pack(render->X(), render->Y());
	ml->EstablecerEnlaces();
	ml->SeleccionarDefecto();


	
	return ml;
	
}








void Partida::IniciaCursorMirada()
{
	cursor_mirada.visible = 0;
	cursor_mirada.index = 0;
	cursor_mirada.x = 0;
	cursor_mirada.y = 0;

	Elemento* elem = new Barra("dummy");
	elem->SetImage("cursor_nada.png");
	cursor_mirada.images[0] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_n.png");
	cursor_mirada.images[1] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_n_turbo.png");
	cursor_mirada.images[2] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_ne.png");
	cursor_mirada.images[3] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_ne_turbo.png");
	cursor_mirada.images[4] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_e.png");
	cursor_mirada.images[5] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_e_turbo.png");
	cursor_mirada.images[6] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_se.png");
	cursor_mirada.images[7] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_se_turbo.png");
	cursor_mirada.images[8] = elem->GetImage();
	free (elem);

	
	elem = new Barra("dummy");
	elem->SetImage("cursor_s.png");
	cursor_mirada.images[9] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_s_turbo.png");
	cursor_mirada.images[10] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_so.png");
	cursor_mirada.images[11] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_so_turbo.png");
	cursor_mirada.images[12] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_o.png");
	cursor_mirada.images[13] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_o_turbo.png");
	cursor_mirada.images[14] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_no.png");
	cursor_mirada.images[15] = elem->GetImage();
	free (elem);
	
	elem = new Barra("dummy");
	elem->SetImage("cursor_no_turbo.png");
	cursor_mirada.images[16] = elem->GetImage();
	free (elem);
}




ScreenLayout* Partida::CargaHUD( int facesize)
{
	if (fuente_hud != NULL)
		free (fuente_hud);
	
	std::string ruta = RUTA_FUENTES;
	fuente_hud = new FTGLPixmapFont((ruta + "Vera.ttf").c_str());
	fuente_hud->FaceSize(facesize);
	
	ScreenLayout* sl = new ScreenLayout (7, 7);

	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] = {1.0, 0.0, 0.0};

	

	LinkedContainer* cont = new LinkedContainer(render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(.8);

	
	
	Elemento* elem = new Mensaje("box", fuente_hud);
	elem->SetFGColor(negro);
	elem->SetText("Box");
	elem->SetImage(_imgUndetermined, 100, 100, IMG_ALIGN_ABOVE);
	cont->Append(elem);

	elem = new Mensaje("bola", fuente_hud);
	elem->SetFGColor(negro);
	elem->SetText("Bola");
	elem->SetImage(_imgWhiteBall, 100, 100, IMG_ALIGN_BELOW);
	cont->Append(elem);
	sl->Append(cont, 0, 0);

	
	cont = new LinkedContainer(render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(.8);
	elem = new Mensaje("potencia", fuente_hud);
	elem->SetText("Esperando lanzamiento");
	elem->SetFGColor(negro);
	cont->Append(elem);
	elem = new Barra("fuerza_lanzamiento");
	elem->SetSize(150);
	elem->SetFGColor(azul);
	elem->SetBGColor(blanco);
	elem->SetPercent(0);
	cont->Append(elem);

	sl->Append(cont, 6, 3);
	
	cont = new LinkedContainer(render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(.8);
	elem = new Mensaje("dummy", fuente_hud);
	elem->SetText("Bolas Perdidas");
	cont->Append(elem);
	
	
	elem = new Mensaje("bolas_rojas", fuente_hud);
	elem->SetImage("perdidas_0.png", 150, 40, IMG_ALIGN_LEFT);
	_imgLostBlue[0] = elem->GetImage();
	_imgLostRed[0] = elem->GetImage();
	elem->SetImage("perdidas_rojo_1.png", 150, 40, IMG_ALIGN_LEFT);
	_imgLostRed[1] = elem->GetImage();
	elem->SetImage("perdidas_rojo_2.png", 150, 40, IMG_ALIGN_LEFT);
	_imgLostRed[2] = elem->GetImage();
	elem->SetImage("perdidas_rojo_3.png", 150, 40, IMG_ALIGN_LEFT);
	_imgLostRed[3] = elem->GetImage();
	elem->SetImage("perdidas_rojo_4.png", 150, 40, IMG_ALIGN_LEFT);
	_imgLostRed[4] = elem->GetImage();
	elem->SetImage("perdidas_rojo_5.png", 150, 40, IMG_ALIGN_LEFT);
	_imgLostRed[5] = elem->GetImage();
	elem->SetImage("perdidas_rojo_6.png", 150, 40, IMG_ALIGN_LEFT);
	_imgLostRed[6] = elem->GetImage();
	elem->SetImage(_imgLostRed[0], 150, 40, IMG_ALIGN_LEFT);
	cont->Append(elem);
	
	elem = new Mensaje("bolas_azules", fuente_hud);
	elem->SetImage("perdidas_azul_1.png", 150, 40, IMG_ALIGN_RIGHT);
	_imgLostBlue[1] = elem->GetImage();
	elem->SetImage("perdidas_azul_2.png", 150, 40, IMG_ALIGN_RIGHT);
	_imgLostBlue[2] = elem->GetImage();
	elem->SetImage("perdidas_azul_3.png", 150, 40, IMG_ALIGN_RIGHT);
	_imgLostBlue[3] = elem->GetImage();
	elem->SetImage("perdidas_azul_4.png", 150, 40, IMG_ALIGN_RIGHT);
	_imgLostBlue[4] = elem->GetImage();
	elem->SetImage("perdidas_azul_5.png", 150, 40, IMG_ALIGN_RIGHT);
	_imgLostBlue[5] = elem->GetImage();
	elem->SetImage("perdidas_azul_6.png", 150, 40, IMG_ALIGN_RIGHT);
	_imgLostBlue[6] = elem->GetImage();
	elem->SetImage(_imgLostBlue[0], 150, 40, IMG_ALIGN_RIGHT);
	cont->Append(elem);
	
	sl->Append(cont, 0, 6);

	cont = new LinkedContainer (render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(.8);

	elem = new Mensaje("dummy", fuente_hud);
	elem->SetText("Puntuación");
	cont->Append(elem);

	elem = new Mensaje("puntuacion_rojo", fuente_hud);
	elem->SetText("Equipo rojo: 00");
	elem->SetFGColor(rojo);
	cont->Append(elem);

	elem = new Mensaje("puntuacion_azul", fuente_hud);
	elem->SetText("Equipo azul: 00");
	elem->SetFGColor(azul);
	cont->Append(elem);

	sl->Append(cont, 0, 3);

	cont = new LinkedContainer (render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(.8);

	

	elem = new Mensaje("control_1", fuente_hud);
	elem->SetText("1: Cámara de estadio");
	cont->Append(elem);

	elem = new Mensaje("control_2", fuente_hud);
	elem->SetText("2: Cámara táctica");
	cont->Append(elem);

	elem = new Mensaje("control_3", fuente_hud);
	elem->SetText("B: Lanzar");
	cont->Append(elem);

	sl->Append(cont, 6, 0);
	sl->Pack(render->X(), render->Y());
	return sl;
}












MenuLayout* Partida::CrearMenuInGame()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	std::string ruta = RUTA_FUENTES;
	
	MenuLayout* ml = new MenuLayout("in_game", 3, 9);

	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Volver al juego");
	elem->SetImage(_imgBack, 100, 100, IMG_ALIGN_BELOW);

	Boton* bot = new Boton ("boton_volver_anterior_estado", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	ml->Append(bot, 2, 2);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Reactivar IR");
	elem->SetImage("ir.png", 100, 100, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_reactivar_ir", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	ml->Append(bot, 2, 4);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Salir al menú principal");
	elem->SetImage(_imgExit, 100, 100, IMG_ALIGN_BELOW);

	bot = new Boton("boton_menu_salir", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	ml->Append(bot, 2, 6);

	// Menu Salir
	MenuLayout* sub = new MenuLayout("menu_salir", 4, 5);

	elem = new Mensaje("dummy", font);
	
	elem->SetText("¿Estás Seguro?\n Si sales ahora perderás todo lo que no hayas guardado");
	elem->SetImage("advertencia.png", 100, 100, IMG_ALIGN_LEFT);

	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable(0);
	bot->SetBGTransparency(1);
	bot->SetBGImage("borde_superior_ventana.png", -1, -1, IMG_ALIGN_ABOVE_RIGHT);
	bot->Append(elem);

	sub->Append(bot, 1, 2);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Pues mejor no");
	elem->SetImage(_imgBack, 75, 75, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	sub->Append(bot, 2, 1);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Sí, déjame salir");
	elem->SetImage(_imgExit, 75, 75, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_volver_principal", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	sub->Append(bot, 2, 3);

	
	sub->Pack(render->X(), render->Y());
	sub->EstablecerEnlaces();
	sub->SeleccionarDefecto();
	ml->AsignarSubMenu(sub);

	ml->Pack(render->X(), render->Y());
	ml->EstablecerEnlaces();
	ml->SeleccionarDefecto();


	
	return ml;
}






MenuLayout* Partida::CrearMenuSeleccionBola()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};
	MenuLayout* menu = new MenuLayout("seleccion_bola", 3, 5);


	Elemento* elem = new Mensaje("label_equipo", font);
	elem->SetImage(_imgUndetermined, 150, 150, IMG_ALIGN_ABOVE);
	elem->SetText("Equipo ");
	Boton *bot = new Boton("dummy", render->X(), render->Y());
	bot->Append(elem);
	bot->SetSelectable(0);
	bot->SetBGColor(blanco);
	menu->Append(bot, 0, 2);

	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgSoftBall, 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Blanda");
	bot = new Boton("seleccionar_bola_blanda", render->X(), render->Y());
	bot->Append(elem);
	bot->SetBGColor(blanco);
	menu->Append(bot, 1, 1);

	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgSemiBall, 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Semiblanda");
	bot = new Boton("seleccionar_bola_semi", render->X(), render->Y());
	bot->Append(elem);
	bot->SetBGColor(blanco);
	menu->Append(bot, 1, 2);

	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgHardBall, 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Dura");
	bot = new Boton("seleccionar_bola_dura", render->X(), render->Y());
	bot->Append(elem);
	bot->SetBGColor(blanco);
	menu->Append(bot, 1, 3);


	menu->Pack(render->X(), render->Y());
	menu->EstablecerEnlaces();
	menu->SeleccionarDefecto();

	return menu;

		
}

MenuLayout* Partida::CrearMenuSeleccionBox()
{

	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};
	MenuLayout* menu = new MenuLayout("seleccion_box", 3, 8);


	Elemento* elem = new Mensaje("label_equipo", font);
	
	elem->SetImage("equipo_rojo.png", 250, 136, IMG_ALIGN_ABOVE);
	_imgRedTeam = elem->GetImage();
	
	elem->SetImage("equipo_azul.png", 250, 136, IMG_ALIGN_ABOVE);
	_imgBlueTeam = elem->GetImage();
	
	elem->SetText("Equipo rojo");
	Boton* bot = new Boton("dummy", render->X(), render->Y());
	bot->Append(elem);
	bot->SetSelectable(0);
	bot->SetBGColor(blanco);
	menu->Append(bot, 0, 2);

	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgBox[0], 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Box 1");
	bot = new Boton("seleccionar_box_1", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	menu->Append(bot, 1, 1);

	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgBox[1], 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Box 2");
	bot = new Boton("seleccionar_box_2", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	menu->Append(bot, 1, 2);

	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgBox[2], 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Box 3");
	bot = new Boton("seleccionar_box_3", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	menu->Append(bot, 1, 3);


	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgBox[3], 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Box 4");
	bot = new Boton("seleccionar_box_4", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	menu->Append(bot, 1, 4);

	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgBox[4], 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Box 5");
	bot = new Boton("seleccionar_box_5", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	menu->Append(bot, 1, 5);



	elem = new Mensaje("dummy", font);
	elem->SetImage(_imgBox[5], 100, 100, IMG_ALIGN_ABOVE);
	elem->SetText("Box 6");
	bot = new Boton("seleccionar_box_6", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	menu->Append(bot, 1, 6);
	

	menu->Pack(render->X(), render->Y());
	menu->EstablecerEnlaces();
	menu->SeleccionarDefecto();

	return menu;

}









MenuLayout* Partida::CargaMenuPpal()
{
	MenuLayout* supermenu;
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};

	supermenu = new MenuLayout("principal", 3, 9);


	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Jugar");
	elem->SetImage("jugar.png", 100, 100, IMG_ALIGN_BELOW);
	_imgPlay = elem->GetImage();

	Boton* bot = new Boton("boton_ppal_nuevapartida", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	supermenu->Append(bot, 2, 1);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Opciones");
	elem->SetImage("opciones.png", 100, 100, IMG_ALIGN_BELOW);

	bot = new Boton("boton_ppal_opciones", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	supermenu->Append(bot, 2, 3);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Créditos");
	elem->SetImage("creditos.png", 100, 100, IMG_ALIGN_BELOW);

	bot = new Boton("boton_ppal_about", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	supermenu->Append(bot, 2, 5);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Salir");
	elem->SetImage("salir.png", 100, 100, IMG_ALIGN_BELOW);
	_imgExit = elem->GetImage();

	bot = new Boton("boton_menu_salir", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	supermenu->Append(bot, 2, 7);


	// Menú Créditos
	MenuLayout* sub = new MenuLayout ("creditos", 1, 1);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	std::string mensaje;
	mensaje = "BocciaWii ha sido desarrollado en la Universidad de León\n";
	mensaje += "para el CRE de San Andrés del Rabanedo por: \n";
	mensaje += " + Miguel Ángel Barros Suárez\n";
	mensaje += " + Sergio González Llorente\n";
	mensaje += " + Javier María González\n";
	mensaje += " + Damián Fernández Quirós\n";
	elem->SetText(mensaje);

	bot = new Boton ("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGImage("borde_inferior_ventana.png", -1, -1, IMG_ALIGN_BELOW_RIGHT);
	bot->Append(elem);
	sub->Append(bot, 0,0);

	sub->Pack(render->X(), render->Y());
	sub->EstablecerEnlaces();
	sub->SeleccionarDefecto();
	supermenu->AsignarSubMenu(sub);

	

	supermenu->AsignarSubMenu(CrearMenuJuego());

	supermenu->AsignarSubMenu(CrearMenuOpciones());

	supermenu->AsignarSubMenu(CrearMenuSalir());
	

	supermenu->Pack(render->X(), render->Y());
	supermenu->EstablecerEnlaces();
	supermenu->SeleccionarDefecto();
	


	return supermenu;
}

MenuLayout* Partida::CrearMenuOpciones()
{	
		
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};
	MenuLayout* sub = new MenuLayout ("sub_opciones", 3, 7);

	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Texto de HUD");
	elem->SetImage("pppletra.png", 100, 100, IMG_ALIGN_BELOW);

	Boton* bot = new Boton ("boton_gra_letra", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub->Append(bot, 1, 1);


	
	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Ayuda");
	elem->SetImage("opc_ayuda.png", 100, 100, IMG_ALIGN_BELOW);

	bot = new Boton ("boton_opc_controles", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub->Append(bot, 1, 3);

	
	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Atrás");
	elem->SetImage(_imgBack, 100, 100, IMG_ALIGN_BELOW);

	bot = new Boton ("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub->Append(bot, 1, 5);


	MenuLayout*	sub2 = new MenuLayout("ayuda", 1, 1);
	bot = new Boton ("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGImage("borde_superior_ventana.png", -1, -1, IMG_ALIGN_ABOVE_RIGHT);
	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	std::string mensaje;
	mensaje = "Esperamos que los controles del juego no te estén\n levantando dolor de cabeza\n";
	mensaje += "- A: Selección de elementos en el menú\n";
	mensaje += "- Mantén A y mira a la pantalla para mirar / apuntar\n";
	
	mensaje += "- B: Comienza el proceso de lanzamiento\n";
	mensaje += "     Si te encuentras en cámara táctica o de estadio, vuelve a la de lanzamiento\n";
	mensaje += "- Mantén B y mueve el brazo para lanzar, y suelta B cuando quieras soltar la bola\n";
	
	mensaje += "- Menos: Aplica menos zoom a las cámaras táctica y de estadio\n";
	
	mensaje += "- Más: Aplica más zoom a las cámaras táctica y de estadio\n";
	
	mensaje += "- Cruceta: Moverse por el menú\n";
	
	mensaje += "- HOME: Menú pausa durante el juego\n";
	
	mensaje += "- 1: Elige la cámara de estadio\n";
	
	mensaje += "- 2: Elige la cámara táctica\n";
	elem->SetText(mensaje);
	elem->SetSize(20);
	elem->SetImage("wiimote.png", 114, 300);
	bot->Append(elem);

	
	sub2->Append(bot, 0,0);
	
	sub2->Pack(render->X(), render->Y());
	sub2->EstablecerEnlaces();
	sub2->SeleccionarDefecto();

	
	sub->AsignarSubMenu(sub2);
	sub->AsignarSubMenu(CrearMenuTamLetra ());


	sub->Pack(render->X(), render->Y());
	sub->EstablecerEnlaces();
	sub->SeleccionarDefecto();

	return sub;
}






MenuLayout* Partida::CrearMenuEsperaParciales()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};

	MenuLayout* sub2 = new MenuLayout("sub_espera", 3, 3);


	Boton* cont = new Boton("dummy", render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(1);
	cont->SetSelectable(0);

	
	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetSize(14);
	elem->SetText("Parcial finalizado");
	cont->Append(elem);
	
	elem = new Mensaje("parcial_finalizado", font);
	elem->SetFGColor(negro);
	elem->SetSize(25);
	elem->SetText("1");
	cont->Append(elem);

	sub2->Append(cont, 0, 0);

	
	cont = new Boton("dummy", render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(1);
	cont->SetSelectable(0);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetSize(14);
	elem->SetText("Parcial a comenzar");
	cont->Append(elem);
	
	elem = new Mensaje("parcial_comenzando", font);
	elem->SetFGColor(negro);
	elem->SetSize(25);
	elem->SetText("2");
	cont->Append(elem);
	sub2->Append(cont, 2, 2);

	
	
	cont = new Boton("desempate", render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(1);
	cont->SetSelectable(0);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetSize(20);
	elem->SetText("Desempate necesario");
	cont->Append(elem);

	sub2->Append(cont, 0, 1);
	
	cont = new Boton("boton_volver_anterior_estado", render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(1);


	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("El ganador de este parcial es:");
	cont->Append(elem);
	
	elem = new Mensaje("ganador", font);
	elem->SetFGColor(rojo);
	elem->SetSize(25);
	elem->SetText("EQUIPO ROJO");
	cont->Append(elem);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("La puntuación del parcial ha sido:");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_parcial_rojo", font);
	elem->SetFGColor(rojo);
	elem->SetText("EQUIPO ROJO: 00");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_parcial_azul", font);
	elem->SetFGColor(azul);
	elem->SetText("EQUIPO AZUL: 00");
	cont->Append(elem);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("La puntuación total está siendo:");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_total_rojo", font);
	elem->SetFGColor(rojo);
	elem->SetText("EQUIPO ROJO: 00");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_total_azul", font);
	elem->SetFGColor(azul);
	elem->SetText("EQUIPO AZUL: 00");
	cont->Append(elem);

	sub2->Append(cont, 1, 1);
	
	sub2->Pack(render->X(), render->Y());
	sub2->EstablecerEnlaces();
	sub2->SeleccionarDefecto();

	return sub2;

	
	
}



MenuLayout* Partida::CrearMenuEsperaFinal()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};

	MenuLayout* sub2 = new MenuLayout("sub_espera", 3, 3);


	Boton* cont = new Boton("dummy", render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(1);
	cont->SetSelectable(0);

	
	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetSize(14);
	elem->SetText("Total de parciales");
	cont->Append(elem);
	
	elem = new Mensaje("nro_parciales", font);
	elem->SetFGColor(negro);
	elem->SetSize(25);
	elem->SetText("6");
	cont->Append(elem);

	sub2->Append(cont, 0, 0);
	
	cont = new Boton("boton_volver_anterior_estado", render->X(), render->Y());
	cont->SetBGColor(blanco);
	cont->SetBGTransparency(1);


	elem = new Mensaje("ganador", font);
	elem->SetFGColor(negro);
	elem->SetImage(_imgBlueTeam, 250, 146, IMG_ALIGN_LEFT);
	elem->SetText("¡¡ENHORABUENA!!");
	elem->SetSize(25);
	cont->Append(elem);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("La puntuación por parciales ha sido:");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_parcial_rojo", font);
	elem->SetFGColor(rojo);
	elem->SetText("EQUIPO ROJO:     0     0     0     0     0     0     0");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_parcial_azul", font);
	elem->SetFGColor(azul);
	elem->SetText("EQUIPO AZUL:     0     0     0     0     0     0     0");
	cont->Append(elem);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("La puntuación total ha sido:");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_total_rojo", font);
	elem->SetFGColor(rojo);
	elem->SetText("EQUIPO ROJO: 00");
	cont->Append(elem);
	
	elem = new Mensaje("puntuacion_total_azul", font);
	elem->SetFGColor(azul);
	elem->SetText("EQUIPO AZUL: 00");
	cont->Append(elem);

	sub2->Append(cont, 1, 1);
	
	sub2->Pack(render->X(), render->Y());
	sub2->EstablecerEnlaces();
	sub2->SeleccionarDefecto();

	return sub2;

	
	
}


















MenuLayout* Partida::CrearMenuTamLetra()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};

	MenuLayout* sub2 = new MenuLayout("sub_gra_letra", 5, 5);

	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Más grande");
	elem->SetImage(_imgPlus, 75, 75, IMG_ALIGN_BELOW);

	Boton* bot = new Boton ("boton_gra_letramas", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 1, 1);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Más pequeña");
	elem->SetImage(_imgMinus, 75, 75, IMG_ALIGN_BELOW);

	bot = new Boton ("boton_gra_letramenos", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 2, 1);

	
	elem = new Mensaje("prueba_texto", font);
	elem->SetFGColor(negro);
	elem->SetSize(_opciones->tam_letra);
	elem->SetText("Prueba de texto\nPrueba los diferentes tamaños\n antes de elegir uno definitivo");

	bot = new Boton ("prueba_texto", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable(0);
	bot->SetBGTransparency(1);
	bot->Append(elem);
	sub2->Append(bot, 2, 3);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Atrás");
	elem->SetImage(_imgBack, 75, 75, IMG_ALIGN_BELOW);

	bot = new Boton ("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 3, 1);


	sub2->Pack(render->X(), render->Y());
	sub2->EstablecerEnlaces();
	sub2->SeleccionarDefecto();

	return sub2;
}































MenuLayout* Partida::CrearMenuSalir()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};
	MenuLayout* sub = new MenuLayout("menu_salir", 4, 5);
	
	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("¿Estás Seguro?\n Si sales ahora perderás todo lo que no hayas guardado");
	elem->SetImage("advertencia.png", 100, 100, IMG_ALIGN_LEFT);

	
	Boton* bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable(0);
	bot->SetBGTransparency(1);
	bot->SetBGImage("borde_superior_ventana.png", -1, -1, IMG_ALIGN_ABOVE_RIGHT);
	bot->Append(elem);
	sub->Append(bot, 1, 2);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Pues mejor no");
	elem->SetImage(_imgBack, 75, 75, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	sub->Append(bot, 2, 1);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Sí, déjame salir");
	elem->SetImage(_imgExit, 75, 75, IMG_ALIGN_ABOVE);
	

	bot = new Boton("boton_salir", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);

	sub->Append(bot, 2, 3);

	
	sub->Pack(render->X(), render->Y());
	sub->EstablecerEnlaces();
	sub->SeleccionarDefecto();

	return sub;
	
}










































MenuLayout* Partida::CrearMenuJuego()
{	
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};
	MenuLayout* sub = new MenuLayout ("sub_juego", 3, 5);

	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Uno contra uno");
	elem->SetImage("1_pa_1.png", 100, 100, IMG_ALIGN_BELOW);

	Boton* bot = new Boton ("boton_jue_dos", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub->Append(bot, 1, 1);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Equipos");
	elem->SetImage("3_pa_3.png", 100, 100, IMG_ALIGN_BELOW);

	bot = new Boton ("boton_jue_seis", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub->Append(bot, 1, 2);
	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Atrás");
	elem->SetImage("volver.png", 100, 100, IMG_ALIGN_BELOW);
	_imgBack = elem->GetImage();

	bot = new Boton ("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub->Append(bot, 1, 3);

	
	sub->AsignarSubMenu(CrearMenuEntradaJuego());

	sub->Pack(render->X(), render->Y());
	sub->EstablecerEnlaces();
	sub->SeleccionarDefecto();


	return sub;
}







MenuLayout* Partida::CrearMenuEntradaJuego()
{
	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};
	
	MenuLayout* sub2 = new MenuLayout ("sub_jue_box", 8, 7);

	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Atrás");
	elem->SetImage(_imgBack, 80, 80, IMG_ALIGN_BELOW);

	Boton* bot = new Boton ("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 7, 1);

	
	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable(0);
	bot->SetBGTransparency(1);
	bot->SetBGImage("pantalla_seleccion_boxes.png", 100, 536, IMG_ALIGN_CENTER);
	sub2->Append(bot, 3, 0);
	

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Jugar");
	elem->SetImage(_imgPlay, 80, 80, IMG_ALIGN_BELOW);

	

	bot = new Boton("boton_jue_comenzar", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 7, 4);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Box 1");
	elem->SetImage("box_1.png", 80, 80, IMG_ALIGN_BELOW);
	_imgBox[0] = elem->GetImage();
	bot = new Boton("boton_bolas_box1", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 1, 1);


	bot = new Boton("cont_1_restantes", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable (0);
	bot->SetBGTransparency(1);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te faltan");
	bot->Append(elem);
	elem = new Mensaje("cont_1_restantes", font);
	elem->SetFGColor(negro);
	elem->SetSize(24);
	elem->SetText(0);
	bot->Append(elem);
	sub2->Append(bot, 1, 2);

	

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Box 3");
	elem->SetImage("box_3.png", 80, 80, IMG_ALIGN_BELOW);
	_imgBox[2] = elem->GetImage();
	bot = new Boton("boton_bolas_box3", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 3, 1);
	bot = new Boton("cont_3_restantes", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable (0);
	bot->SetBGTransparency(1);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te faltan");
	bot->Append(elem);
	elem = new Mensaje("cont_3_restantes", font);
	elem->SetFGColor(negro);
	elem->SetSize(24);
	elem->SetText(0);
	bot->Append(elem);
	sub2->Append(bot, 3, 2);

	
	

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Box 5");
	elem->SetImage("box_5.png", 80, 80, IMG_ALIGN_BELOW);
	_imgBox[4] = elem->GetImage();

	bot = new Boton("boton_bolas_box5", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 5, 1);
	bot = new Boton("cont_5_restantes", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable (0);
	bot->SetBGTransparency(1);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te faltan");
	bot->Append(elem);
	elem = new Mensaje("cont_5_restantes", font);
	elem->SetFGColor(negro);
	elem->SetSize(24);
	elem->SetText(0);
	bot->Append(elem);
	sub2->Append(bot, 5, 2);
	
	



	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Box 2");
	elem->SetImage("box_2.png", 80, 80, IMG_ALIGN_BELOW);
	_imgBox[1] = elem->GetImage();

	bot = new Boton("boton_bolas_box2", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 1, 4);
	

	bot = new Boton("cont_2_restantes", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable (0);
	bot->SetBGTransparency(1);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te faltan");
	bot->Append(elem);
	elem = new Mensaje("cont_2_restantes", font);
	elem->SetFGColor(negro);
	elem->SetSize(24);
	elem->SetText(0);
	bot->Append(elem);
	sub2->Append(bot, 1, 5);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Box 4");
	elem->SetImage("box_4.png", 80, 80, IMG_ALIGN_BELOW);
	_imgBox[3] = elem->GetImage(); 
	bot = new Boton("boton_bolas_box4", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 3, 4);

	
	
	bot = new Boton("cont_4_restantes", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable (0);
	bot->SetBGTransparency(1);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te faltan");
	bot->Append(elem);
	elem = new Mensaje("cont_4_restantes", font);
	elem->SetFGColor(negro);
	elem->SetSize(24);
	elem->SetText(0);
	bot->Append(elem);
	sub2->Append(bot, 3, 5);

	


	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Box 6");
	elem->SetImage("box_6.png", 80, 80, IMG_ALIGN_BELOW);
	_imgBox[5] = elem->GetImage();
	bot = new Boton("boton_bolas_box6", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 5, 4);
	bot = new Boton("cont_6_restantes", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable (0);
	bot->SetBGTransparency(1);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te faltan");
	bot->Append(elem);
	elem = new Mensaje("cont_6_restantes", font);
	elem->SetFGColor(negro);
	elem->SetSize(24);
	elem->SetText(0);
	bot->Append(elem);
	sub2->Append(bot, 5, 5);




	sub2->AsignarSubMenu(CrearMenuEntradaBolasJuego());
	

	sub2->Pack(render->X(), render->Y());
	sub2->EstablecerEnlaces();
	sub2->SeleccionarDefecto();
	
	return sub2;
	
}


MenuLayout* Partida::CrearMenuEntradaBolasJuego()
{

	float negro[3] = {0.0, 0.0, 0.0};
	float blanco[3] ={1.0, 1.0, 1.0};
	float azul[3] = {0.0, 0.0, 1.0};
	float rojo[3] ={1.0, 0.0, 0.0};
	
	MenuLayout* sub2 = new MenuLayout ("sub_jue_bola", 7, 7);
	sub2->SetOverlayTransparency(.9);

	Elemento* elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Atrás");
	elem->SetImage(_imgBack, 60, 60, IMG_ALIGN_BELOW);

	Boton* bot = new Boton ("boton_volver", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 5, 0);

	
	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGTransparency(1);
	bot->SetSelectable(0);
	elem = new Mensaje("box_seleccionado", font);
	elem->SetFGColor(negro);
	elem->SetText("Box 1");
	elem->SetImage("bola_blanca.png", 100, 100, IMG_ALIGN_ABOVE);
	_imgWhiteBall = elem->GetImage();
	elem->SetImage("undetermined.png", 100, 100, IMG_ALIGN_ABOVE);
	_imgUndetermined = elem->GetImage();
	bot->Append(elem);
	sub2->Append(bot, 1, 0);

	
	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGTransparency(1);
	bot->SetSelectable(0);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te faltan");
	bot->Append(elem);
	elem = new Mensaje ("cont_restantes", font);
	elem->SetText("0");
	elem->SetSize(24);
	bot->Append(elem);
	sub2->Append(bot, 3, 0);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Menos");
	elem->SetImage("menos.png", 40, 40, IMG_ALIGN_ABOVE);
	_imgMinus = elem->GetImage();

	bot = new Boton("boton_menos_blanda", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 1, 2);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Blanda");
	elem->SetImage("bola_blanda.png", 80, 80, IMG_ALIGN_ABOVE);
	_imgSoftBall = elem->GetImage();

	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable(0);
	bot->SetBGTransparency (1);
	bot->Append(elem);
	sub2->Append(bot, 1, 3);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Más");
	elem->SetImage("mas.png", 40, 40, IMG_ALIGN_ABOVE);
	_imgPlus = elem->GetImage();

	bot = new Boton("boton_mas_blanda", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 1, 4);

	

	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGTransparency(1);
	bot->SetSelectable(0);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te llevas");
	bot->Append(elem);
	elem = new Mensaje ("cont_blandas_llevas", font);
	elem->SetText("0");
	elem->SetSize(24);
	bot->Append(elem);
	sub2->Append(bot, 1, 5);


	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Menos");
	elem->SetImage(_imgMinus, 40, 40, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_menos_semi", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 3, 2);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Semi");
	elem->SetImage("bola_semi.png", 80, 80, IMG_ALIGN_ABOVE);
	_imgSemiBall = elem->GetImage();

	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable(0);
	bot->SetBGTransparency (1);
	bot->Append(elem);
	sub2->Append(bot, 3, 3);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Más");
	elem->SetImage(_imgPlus, 40, 40, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_mas_semi", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 3, 4);

	

	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGTransparency(1);
	bot->SetSelectable(0);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te llevas");
	bot->Append(elem);
	elem = new Mensaje ("cont_semis_llevas", font);
	elem->SetText("0");
	elem->SetSize(24);
	bot->Append(elem);
	sub2->Append(bot, 3, 5);



	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Menos");
	elem->SetImage(_imgMinus, 40, 40, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_menos_dura", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 5, 2);

	
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Dura");
	elem->SetImage("bola_dura.png", 80, 80, IMG_ALIGN_ABOVE);
	_imgHardBall = elem->GetImage();

	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetSelectable(0);
	bot->SetBGTransparency (1);
	bot->Append(elem);
	sub2->Append(bot, 5, 3);

	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Más");
	elem->SetImage(_imgPlus, 40, 40, IMG_ALIGN_ABOVE);

	bot = new Boton("boton_mas_dura", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->Append(elem);
	sub2->Append(bot, 5, 4);

	

	bot = new Boton("dummy", render->X(), render->Y());
	bot->SetBGColor(blanco);
	bot->SetBGTransparency(1);
	bot->SetSelectable(0);
	elem = new Mensaje("dummy", font);
	elem->SetFGColor(negro);
	elem->SetText("Te llevas");
	bot->Append(elem);
	elem = new Mensaje ("cont_duras_llevas", font);
	elem->SetText("0");
	elem->SetSize(24);
	bot->Append(elem);
	sub2->Append(bot, 5, 5);

	
	sub2->Pack(render->X(), render->Y());
	sub2->EstablecerEnlaces();
	sub2->SeleccionarDefecto();
	
	return sub2;
}